原文在這:
Title: From a Side Project to a Startup - the perspective of a backend developer
網址: https://medium.com/coobyhq/from-a-side-project-to-a-startup-f029fb22e83d
會去看這篇文章主要是因為這間新創是在美國的朋友辭職回台灣創立的,在這次準備面試中,發現自己在System Design很不熟就想說可以去看一下並且學一下。
這間新創叫做 Cooby,Cooby 是主要在做一個 CRM的產品,基本上呢就是去幫助人去處理跟維持跟客戶的關係。有興趣去了解可以上他們的官網去看一下這個產品在做什麼。
看完這篇就發現有很多細節都需要再了解,因為現在市面上有很多不一樣的 Tool 可以來幫忙架設整個Backend的系統。畢竟對於每個不同的產品都有利有弊,所以需要去了解Trade-Off來做決定。這篇文章主要就是帶我走一遍他們一些在選擇上所使用的產品。
首先,先要了解他們是一個新創,所以他們很注重於能很快的將產品 Design -> Deliver,然後將重點研發留在他們的 Core Business Unit。所以很多選擇都是Based on Familiarity。
這是他們手機跟網頁的APP用的 Backend 的 High Level 的 Diagram,大概來講是一個 Platform-as-a-Service,利用Heroku來作為主要的Platform。這個圖還有他們所使用的 Data Storages (PostgreSQL,Redis, AWS S3) 跟不同的 tool (Datadog,ELK Stack) 來用來當Logging 跟 Tracking。剩下這篇還有提到使用的一些 Third-Party Integrations,像是利用 Stripe來作為 Payment 的Solution,MailChimp來寄 Email給客戶等等。
利用 Flask App來當 Entrance of Application跟Handle HTTP Requests,傳送到所謂的Interactors,基本就是他們主要的 Business Core Logic。再去跟不同的 Services 去處理不同的Request。
看完這篇文章,學習到了很多也看到很多以前不知道的 Tool Set。在之後可能會去看一下這些 Tool的用處~